package extras.urlparsers; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.Date; import java.util.Scanner; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import extras.URLTitles; public class RedditParser { public static String find(String s){ String title = "none"; String urlstring = s; urlstring = urlstring + ".json"; try{ /* URL url = new URL(urlstring); URLConnection urlc = url.openConnection(); urlc.addRequestProperty("Accept-Language", "en-US,en;q=0.8"); urlc.addRequestProperty("User-Agent", "Mozilla"); urlc.connect(); Scanner scan = new Scanner(urlc.getInputStream()); String jsonstring = ""; while(scan.hasNext()){ jsonstring += scan.next() + " "; } scan.close(); */ String jsonstring = URLTitles.readUrl(urlstring); Gson gson = new GsonBuilder().create(); JsonArray json = gson.fromJson(jsonstring, JsonElement.class).getAsJsonArray(); JsonObject first = json.get(0).getAsJsonObject(); JsonObject data = first.get("data").getAsJsonObject(); JsonArray children = data.get("children").getAsJsonArray(); JsonObject info = children.get(0).getAsJsonObject(); JsonObject infodata = info.get("data").getAsJsonObject(); int numComments = infodata.get("num_comments").getAsInt(); String created = new Date((long)infodata.get("created_utc").getAsDouble() * 1000).toGMTString(); String subreddit = infodata.get("subreddit").getAsString(); String postTitle = URLTitles.makeClean(infodata.get("title").getAsString()); String link = ""; if(!infodata.get("domain").getAsString().startsWith("self.")){ link = "URL: " + infodata.get("url").getAsString() + " | "; } title = String.format("/r/%s | 2%s | %sComments: %d | Created %s", subreddit, postTitle, link, numComments, created); return title; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { title = "Could not find info"; e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return title; } }